package com.tudu.day02.oop;

/**
 * this关键字---super关键字---使用完全一致
 * 不需要继承---当前类，指代当前
 * 使用方式：调用当前类的属性，方法，构造器
 *           this.属性            【当前类的属性赋值】
 *                                 出现构造器，方法中
 *                                 区别当前类的属性与参数“名称”一致
 *           this.方法
 *           this()               多个有参构造器
 *
 *   鄙视题：this跟super关键字区别？
 *           this  调用本类的属性、方法、构造器
 *           super 调用父类的属性、方法、构造器，存在继承关系，使用super
 *           this()与super()--传递参数：赋值
 *           this() 调用本类的其他构造器--构造器首行
 *           super() 调用父类的其他构造器--子类构造器首行
 *      请问this()与super()可以同时出现在对象的构造器中吗?   ×
 *
 *
 *
 *
 */
public class This关键字 {
    int i;   //属性---很少赋值【声明未赋值】---构造器或者方法中赋值
    int j;   //属性---很少赋值【声明未赋值】---构造器或者方法中赋值

    public This关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }

    //构造器：有参            需求：创建一个参数对象，给i跟j赋值【跟一样super()】
public This关键字(int i) {
        this(3,4); //调用本类其他有参构造器===传参     i=3
    this.i = i;    //常见：this.属性【当前类下属 性】=参数
                   //赋值  this.i=1;
}
//方法--this.方法
    public void testI() {
        System.out.println("我是I");
    }
    public void testJ(){  //调取---输出：我是I   我是J
            this.testI();
            System.out.println("我是J");
        }

public static void main(String[] args){
   System.out.println(new This关键字(1).i);   //属性没有输出语句
    //new This关键字(1).testJ();//方法有输出语句
}
}